RAIS  3.2
C:/Projekte/RAIS/Specific Masks/Dynamic Masks/SingleRowMaskWithList.aspx.cs
Go to the documentation of this file.
00001 
00028 using System;
00029 using System.Data;
00030 using System.Configuration;
00031 using System.Collections;
00032 using System.Collections.Generic;
00033 using System.Web;
00034 using System.Web.Security;
00035 using System.Web.UI;
00036 using System.Web.UI.HtmlControls;
00037 using System.Web.UI.WebControls;
00038 using System.Web.UI.WebControls.WebParts;
00039 
00040 using RAIS.UI.SpecificMasks.Controls;
00041 using RAIS.Common.DynamicMaskManagement;
00042 using RAIS.Common.TableManagement;
00043 using RAIS.UI.Common;
00044 using RAIS.Common.UserManagement;
00045 
00046 namespace RAIS.UI.SpecificMasks.Dynamic_Masks
00047 {
00051     public partial class SingleRowMaskWithList : System.Web.UI.Page
00052         {
00053                 //*********************************************************************
00054                 #region Fields
00055 
00058         DynamicMaskData dynamicMaskData;
00059                 #endregion
00060                 //*********************************************************************
00061                 #region Properties
00062 
00065                 protected int MaskID
00066                 {
00067                         get
00068                         {
00069                                 return (Request[Constants.MASK_ID_PARAMETER_NAME] == null) 
00070                                         ? 0
00071                                         : int.Parse(Request[Constants.MASK_ID_PARAMETER_NAME]);
00072                         }
00073                 }
00077                 protected int TabID
00078                 {
00079                         get
00080                         {
00081                                 return (Request[Constants.TAB_ID_PARAMETER_NAME] == null) 
00082                                         ? 0
00083                                         : int.Parse(Request[Constants.TAB_ID_PARAMETER_NAME]);
00084                         }
00085                 }
00089                 protected int ParentID
00090                 {
00091                         get
00092                         {
00093                                 return (Request[Constants.PARENT_ID_PARAMETER_NAME] == null) 
00094                                         ? 0
00095                                         : int.Parse(Request[Constants.PARENT_ID_PARAMETER_NAME]);
00096                         }
00097                 }
00101         protected int RowID
00102         {
00103             get
00104             {
00105                 return (this.LBLlist.SelectedItem == null)
00106                     ? 0
00107                     : int.Parse(this.LBLlist.SelectedItem.Value);
00108             }
00109         }
00113                 protected bool IsAddRow
00114                 {
00115                         get
00116                         {
00117                                 return (Request[Constants.ADD_ROW_FORM_MODE_PARAMETER_NAME] == "True")
00118                                         ? true
00119                                         : false;
00120                         }
00121                 }
00125                 protected bool IsNewRow
00126                 {
00127                         get
00128                         {
00129                                 return (this.CurrentFormMode == DynamicMaskManagement.FormMode.Add);
00130                         }
00131                 }
00135                 protected string SuccessMessage
00136                 {
00137                         get
00138                         {
00139                                 if (this.Session[UI.Common.Constants.SUCCESS_MESSAGE_TAG] == null)
00140                                         return string.Empty;
00141                                 else
00142                                         return this.Session[UI.Common.Constants.SUCCESS_MESSAGE_TAG].ToString();
00143                         }
00144                         set { this.Session[UI.Common.Constants.SUCCESS_MESSAGE_TAG] = value; }
00145                 }
00149         protected DynamicMaskManagement.FormMode CurrentFormMode
00150                 {
00151                         get
00152                         {
00153                                 return (DynamicMaskManagement.FormMode)(ViewState[Constants.CURRENT_FORM_MODE_TAG]);
00154                         }
00155                         set
00156                         {
00157                                 ViewState.Add(Constants.CURRENT_FORM_MODE_TAG, value);
00158                         }
00159                 }
00163                 protected UserData CurrentUser
00164                 {
00165                         get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG];}
00166                 }
00170                 protected Facility SelectedFacility
00171                 {
00172                         get { return (Facility)this.Session[UI.Common.Constants.SELECTED_FACILITY_TAG]; }
00173                         set { this.Session[UI.Common.Constants.SELECTED_FACILITY_TAG] = value; }
00174                 }
00178                 protected Department SelectedDepartment
00179                 {
00180                         get { return (Department)this.Session[UI.Common.Constants.SELECTED_DEPARTMENT_TAG]; }
00181                         set { this.Session[UI.Common.Constants.SELECTED_DEPARTMENT_TAG] = value; }
00182                 }
00186                 protected int CurrentNameListIndex
00187                 {
00188                         get
00189                         {
00190                                 return (int)(ViewState[Constants.CURRENT_NAME_LIST_INDEX_TAG]);
00191                         }
00192                         set
00193                         {
00194                                 ViewState.Add(Constants.CURRENT_NAME_LIST_INDEX_TAG, value);
00195                         }
00196                 }
00200                 protected bool ShowHidden
00201                 {
00202                         get
00203                         {
00204                                 //if (this.Session[UI.Common.Constants.SHOW_HIDDEN_STATE_TAG] != null)
00205                                 //    return (bool)this.Session[UI.Common.Constants.SHOW_HIDDEN_STATE_TAG];
00206                                 //else
00207                                 //    return false;
00208                                 return UI.Common.PageManagement.GetShowProtectors(this)
00209                                         || UI.Common.PageManagement.GetShowEvaluators(this);
00210                         }
00211                         set
00212                         {
00213                                 this.Session[UI.Common.Constants.SHOW_HIDDEN_STATE_TAG] = value;
00214                         }
00215                 }
00219                 int ValidationMessageID
00220                 {
00221                         get 
00222                         {
00223                                 if (this.Session[UI.Common.Constants.VALIDATION_MESSAGE_ID_TAG] != null)
00224                                         return (int)this.Session[UI.Common.Constants.VALIDATION_MESSAGE_ID_TAG];
00225                                 else
00226                                         return 0;
00227                         }
00228                 }
00229                 #endregion
00230                 //*********************************************************************
00231                 #region Event handlers
00232         protected void Page_PreLoad(object sender, EventArgs e)
00233         {
00234             RAIS.UI.Common.PageManagement.TrimTextBoxValues(this);
00235         }
00242         protected void Page_Load(object sender, EventArgs e)
00243         {
00244                         this.Response.Cache.SetNoStore();
00245                         if (this.CurrentUser == null)
00246                                 UI.Common.AccessManagement.SignOut(this);
00247 
00248                         // Set Current Mode
00249                         if (!IsPostBack)
00250                         {
00251                                 this.CurrentNameListIndex = 0;
00252                                 if (this.IsAddRow)
00253                                         this.CurrentFormMode = DynamicMaskManagement.FormMode.Add;
00254                                 else
00255                                         this.CurrentFormMode = DynamicMaskManagement.FormMode.View;
00256 
00257                                 if (!string.IsNullOrEmpty(this.SuccessMessage))
00258                                 {
00259                                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00260                                                                                                                                                         this.SuccessMessage,
00261                                                                                                                                                         true);
00262                                     this.LBLresult.Text = this.SuccessMessage;
00263                                         this.SuccessMessage = string.Empty;
00264                                 }
00265 //                this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest);
00266                                 //this.CBshowHidden.Visible =
00267                                 //    (this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Administrator);
00268                                 //this.CBshowHidden.Checked = this.ShowHidden;
00269                         }
00270 
00271                         // Get DynamicMaskData
00272                         this.dynamicMaskData = DynamicMaskManagement.GetDynamicMaskData(
00273                                 this.MaskID, this.TabID, this.ParentID, this.CurrentUser, this.IsNewRow);
00274                         // Get saved in session validation message ID
00275                         this.dynamicMaskData.ValidationMessageID = this.ValidationMessageID;
00276 
00277                         UI.Common.DynamicMaskManagement.SetPreselectedFilter(this.dynamicMaskData, this.SelectedFacility, this.SelectedDepartment);
00278                         UI.Common.DynamicMaskManagement.SetPreselectedFilterText(this.dynamicMaskData, this.LBLselectedFacilityNameNoTranslation, this.LBLselectedDepartmentNameNoTranslation);
00279 
00280                         // Add Links
00281                         UI.Common.DynamicMaskManagement.AddFormLinksControls(this.LGDFormLinks, this.dynamicMaskData, this.CurrentFormMode, this.Anchor_OnClick);
00282 
00283                         // Initialize single field ListBox
00284                         UI.Common.DynamicMaskManagement.InitializeNameList(this.LBLlist, this.dynamicMaskData, this.CurrentFormMode, this.CurrentNameListIndex);
00285 
00286                         // Get Current Row Fields Values
00287                         this.dynamicMaskData.CurrentRowValues = 
00288                 UI.Common.DynamicMaskManagement.GetCurrentRowFieldsValues(this.dynamicMaskData, this.ParentID, this.RowID);
00289 
00290                         // Create New Record in Add mode
00291                         if (this.CurrentFormMode == DynamicMaskManagement.FormMode.Add)
00292                         {
00293                 string returnMessage = "";
00294                                 UI.Common.DynamicMaskManagement.CreateNewRecord(this.dynamicMaskData);
00295                                 UI.Common.DynamicMaskManagement.SetFacilityFieldPreselectedValue(this.dynamicMaskData);
00296                 UI.Common.DynamicMaskManagement.GetLookupValues(this.dynamicMaskData,ref returnMessage);
00297                                 UI.Common.DynamicMaskManagement.SetDepartmentFieldPreselectedValue(this.dynamicMaskData);
00298                         }
00299 
00300                         // Add Field Controlls
00301                         DynamicMaskControlsManagement.AddFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues, 1, this.DDLWithChild_OnSelectedIndexChanged);
00302 
00303                         if (!IsPostBack)
00304                         {
00305                                 this.DataBind();
00306                                 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name;
00307                                 DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00308 
00309                 UI.Common.PageManagement.InitializePage(this, this.TreeView1, this.ShowHidden);
00310 
00311                                 this.SetControlsProperties();
00312                         }
00313                         else
00314                         {
00315                                 this.LBLresult.Text = string.Empty;
00316                         }
00317 
00318                         if (dynamicMaskData.Protector != null)
00319                         {
00320                 this.BTNedit.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", dynamicMaskData.Protector.RenameMessage.Replace("'", "\\'")));
00321                 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: alert('{0}'); return false;", dynamicMaskData.Protector.DeleteMessage.Replace("'", "\\'")));
00322                         }
00323                         else
00324                         {
00325                                 this.BTNedit.Attributes.Remove("onclick");
00326                 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION.Replace("'", "\\'")));
00327             }
00328             UI.Common.Localisation.TranslatePage(this);
00329             UI.Common.PageManagement.InitHelpMainMenu(LBTNdefault, dynamicMaskData.DynamicMask.ID);
00330                 }
00337                 protected void Page_Init(object sender, EventArgs e)
00338         {
00339             PageManagement.SetScrolableListBox(this.LBLlist, this, true);
00340         }
00346                 protected void CBshowHidden_CheckedChanged(object sender, EventArgs e)
00347                 {
00348                         this.ShowHidden = CBshowHidden.Checked;
00349                         UI.Common.PageManagement.InitializePage(this, this.TreeView1, this.ShowHidden);
00350                 }
00357         protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
00358         {
00359             UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1);
00360         }
00367                 protected void LBLlist_SelectedIndexChanged(object sender, EventArgs e)
00368                 {
00369                         DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00370                         this.SetControlsProperties();
00371             UI.Common.Localisation.TranslatePage(this);
00372                 }
00379                 protected void BTNbacktolist_Click(object sender, EventArgs e)
00380                 {
00381                         Response.Redirect(
00382                                 UI.Common.DynamicMaskManagement.GetDynamicMaskMainReference(this.dynamicMaskData, this.MaskID));
00383                 }
00390                 protected void BTNadd_Click(object sender, EventArgs e)
00391                 {
00392                         this.CurrentNameListIndex = this.LBLlist.SelectedIndex;
00393                         this.CurrentFormMode = DynamicMaskManagement.FormMode.Add;
00394                         UI.Common.DynamicMaskManagement.InitializeNameList(this.LBLlist, this.dynamicMaskData, this.CurrentFormMode, this.CurrentNameListIndex);
00395 
00396                         UI.Common.DynamicMaskManagement.CreateNewRecord(this.dynamicMaskData);
00397                         UI.Common.DynamicMaskManagement.SetFacilityFieldPreselectedValue(this.dynamicMaskData);
00398                 string returnMessage = "";
00399                 UI.Common.DynamicMaskManagement.GetLookupValues(this.dynamicMaskData, ref returnMessage);
00400 
00401                 UI.Common.DynamicMaskManagement.SetDepartmentFieldPreselectedValue(this.dynamicMaskData);
00402                 DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00403                 // Make one more initialization to fill child DDLs if parent DDL is mandatory
00404                 DynamicMaskControlsManagement.InitializeObjectFromControlsValues(this.TBLfieldsValues, this.dynamicMaskData);
00405                 if(!UI.Common.DynamicMaskManagement.GetLookupValues(this.dynamicMaskData, ref returnMessage))
00406                 {
00407                     BTNundo_Click(sender, e);
00408                     RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00409                                                                     returnMessage,
00410                                                                     false);
00411                     return;
00412                 }
00413                 DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00414 
00415                 this.SetAddFormMode();
00416 
00417                 UI.Common.DynamicMaskManagement.AddFormLinksControls(this.LGDFormLinks, this.dynamicMaskData, this.CurrentFormMode, this.Anchor_OnClick);
00418                 UI.Common.Localisation.TranslatePage(this);
00419                 }
00426         protected void BTNedit_Click(object sender, EventArgs e)
00427                 {
00428             string returnMessage = "";
00429             UI.Common.DynamicMaskManagement.GetLookupValues(this.dynamicMaskData, ref returnMessage);
00430                         //UI.Common.DynamicMaskManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00431                         DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00432                         this.SetEditFormMode();
00433                 
00434                         UI.Common.DynamicMaskManagement.AddFormLinksControls(this.LGDFormLinks, this.dynamicMaskData, this.CurrentFormMode, this.Anchor_OnClick);
00435             UI.Common.Localisation.TranslatePage(this);
00436                 }
00443         protected void BTNdelete_Click(object sender, EventArgs e)
00444                 {
00445                         string actionMessage = "";
00446                         bool success;
00447 
00448                         this.CurrentFormMode = DynamicMaskManagement.FormMode.Delete;
00449 
00450                         if (dynamicMaskData.NeedsValidation)
00451                         {
00452                                 RAIS.Common.MessageManagement.Message.ModificationType mainMaskModificationType = (this.IsAddRow)
00453                                         ? RAIS.Common.MessageManagement.Message.ModificationType.Add
00454                                         : RAIS.Common.MessageManagement.Message.ModificationType.Edit;
00455                                 success = UI.Common.DynamicMaskManagement.SaveChanges(this.dynamicMaskData
00456                                         , RAIS.Common.MessageManagement.Message.ModificationType.Delete
00457                                         , mainMaskModificationType
00458                                         , ref actionMessage);
00459                         }
00460                         else
00461                         {
00462                                 success = UI.Common.DynamicMaskManagement.DeleteRecord(this.dynamicMaskData, ref actionMessage);
00463                         }
00464                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00465                                                                                                                                         actionMessage,
00466                                                                                                                                         success);
00467                         
00468                         UI.Common.DynamicMaskManagement.GetSingleListFieldValues(this.dynamicMaskData);
00469                         UI.Common.DynamicMaskManagement.InitializeNameList(this.LBLlist, this.dynamicMaskData, this.CurrentFormMode, this.CurrentNameListIndex);
00470                         this.dynamicMaskData.CurrentRowValues =
00471                 UI.Common.DynamicMaskManagement.GetCurrentRowFieldsValues(this.dynamicMaskData, this.ParentID, this.RowID);
00472             //UI.Common.DynamicMaskManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00473                         DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00474                         this.SetViewFormMode();
00475             UI.Common.Localisation.TranslatePage(this);
00476         }
00483         protected void BTNundo_Click(object sender, EventArgs e)
00484                 {
00485                         if (this.dynamicMaskData.IsHistoryMask && this.IsAddRow)
00486                         {
00487                                 this.Response.Redirect(
00488                                         UI.Common.DynamicMaskManagement.GetDynamicMaskMainReference(
00489                                                 this.dynamicMaskData, this.MaskID));
00490                         }
00491                         else
00492                         {
00493                                 if (this.CurrentFormMode == DynamicMaskManagement.FormMode.Add)
00494                                 {
00495                                         this.CurrentFormMode = DynamicMaskManagement.FormMode.UndoAdd;
00496                                         this.dynamicMaskData.IsNewRow = false;
00497                                 }
00498                                 else
00499                                         this.CurrentFormMode = DynamicMaskManagement.FormMode.View;
00500 
00501                                 UI.Common.DynamicMaskManagement.GetSingleListFieldValues(this.dynamicMaskData);
00502                                 UI.Common.DynamicMaskManagement.InitializeNameList(this.LBLlist, this.dynamicMaskData, this.CurrentFormMode, this.CurrentNameListIndex);
00503                                 this.dynamicMaskData.CurrentRowValues =
00504                                         UI.Common.DynamicMaskManagement.GetCurrentRowFieldsValues(this.dynamicMaskData, this.ParentID, this.RowID);
00505                                 DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00506                                 this.SetViewFormMode();
00507 
00508                                 UI.Common.DynamicMaskManagement.AddFormLinksControls(this.LGDFormLinks, this.dynamicMaskData, this.CurrentFormMode, this.Anchor_OnClick);
00509                         }
00510             UI.Common.Localisation.TranslatePage(this);
00511         }
00518         protected void BTNapply_Click(object sender, EventArgs e)
00519                 {
00520                         if (this.IsValid)
00521                         {
00522                                 string actionMessage = string.Empty;
00523                                 bool success = true;
00524 
00525                                 DynamicMaskControlsManagement.InitializeObjectFromControlsValues(this.TBLfieldsValues, this.dynamicMaskData);
00526 
00527                                 RAIS.Common.MessageManagement.Message.ModificationType currentModificationType = (this.CurrentFormMode == DynamicMaskManagement.FormMode.Add)
00528                                         ? RAIS.Common.MessageManagement.Message.ModificationType.Add
00529                                         : RAIS.Common.MessageManagement.Message.ModificationType.Edit;
00530                                 RAIS.Common.MessageManagement.Message.ModificationType mainMaskModificationType = (this.IsAddRow)
00531                                         ? RAIS.Common.MessageManagement.Message.ModificationType.Add
00532                                         : RAIS.Common.MessageManagement.Message.ModificationType.Edit;
00533 
00534                                 if (HDNApplyPhase.Value == RAIS.UI.Common.DynamicMaskManagement.ApplyPhase.Check.ToString())
00535                                 {
00536                                         success = UI.Common.DynamicMaskManagement.ValidateConsistencyChecks(this.dynamicMaskData, ref actionMessage);
00537                                         if (success)
00538                                         {
00539                                                 HDNApplyPhase.Value = RAIS.UI.Common.DynamicMaskManagement.ApplyPhase.Apply.ToString();
00540                                         }
00541                                         else
00542                                         {
00543                                                 this.HDNConsistencyCheckResult.Value = string.Format(RAIS.Common.Messages.CONSISTENCY_CHECK, actionMessage);
00544                                         }
00545                                 }
00546 
00547                                 if (HDNApplyPhase.Value == RAIS.UI.Common.DynamicMaskManagement.ApplyPhase.Apply.ToString())
00548                                 {
00549                                         HDNApplyPhase.Value = RAIS.UI.Common.DynamicMaskManagement.ApplyPhase.Check.ToString();
00550 
00551                                         if (this.dynamicMaskData.IsHistoryMask && this.IsAddRow)
00552                                         { 
00553                                                 DynamicMaskData parentDynamicMaskData = DynamicMaskManagement.GetDynamicMaskData(
00554                                                         this.MaskID, this.TabID - 1, this.ParentID, this.CurrentUser, this.IsNewRow);
00555                                                 parentDynamicMaskData.CurrentRowValues =
00556                                                         UI.Common.DynamicMaskManagement.GetCurrentRowFieldsValues(parentDynamicMaskData, this.ParentID, this.RowID);
00557                                                 UI.Common.DynamicMaskManagement.CreateNewRecord(parentDynamicMaskData);
00558                                                 parentDynamicMaskData.CurrentRowValues = 
00559                                                         (List<FieldData>)this.Session["CurrentRowValues"];
00560 
00561                                                 this.dynamicMaskData.ParentDynamicMaskData = parentDynamicMaskData;
00562                                         }
00563 
00564                                         //if (success)
00565                                                 success = UI.Common.DynamicMaskManagement.SaveChanges(this.dynamicMaskData
00566                                                         , currentModificationType, mainMaskModificationType, ref actionMessage);
00567 
00568                                         RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult,
00569                                                                                                                                                         actionMessage,
00570                                                                                                                                                         success);
00571                                         if (success)
00572                                         {
00573                                                 if (this.dynamicMaskData.DynamicMasks.Count == 1)
00574                                                 {
00575                                                         // Reeead current row to get correct values for changes in multilookup field
00576                                                         this.dynamicMaskData.CurrentRowValues =
00577                                                                 UI.Common.DynamicMaskManagement.GetCurrentRowFieldsValues(this.dynamicMaskData, this.ParentID, this.RowID);
00578 
00579                                                         // Initialize fields to format scientific and fload fields if user does not need validation
00580                                                         // and to get current field valies if user needs validation
00581                                                         DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00582 
00583                                                         this.SetViewFormMode();
00584                                                         UI.Common.DynamicMaskManagement.GetSingleListFieldValues(this.dynamicMaskData);
00585                                                         UI.Common.DynamicMaskManagement.InitializeNameList(this.LBLlist, this.dynamicMaskData, this.CurrentFormMode, this.CurrentNameListIndex);
00586 
00587                                                         // Find ItemInList
00588                                                         string keyValue = this.dynamicMaskData.CurrentRowKeyValue.ToString();
00589                                                         foreach (ListItem listItem in this.LBLlist.Items)
00590                                                         {
00591                                                                 if (listItem.Value == keyValue)
00592                                                                 {
00593                                                                         listItem.Selected = true;
00594                                                                         break;
00595                                                                 }
00596                                                         }
00597                                                         this.SetControlsProperties();
00598                                                         UI.Common.DynamicMaskManagement.AddFormLinksControls(this.LGDFormLinks, this.dynamicMaskData, this.CurrentFormMode, this.Anchor_OnClick);
00599                                                 }
00600                                                 else
00601                                                 {
00602                                                         this.SuccessMessage = actionMessage;
00603                                                         string reference = UI.Common.DynamicMaskManagement.GetDynamicMaskReference(
00604                                                                         this.dynamicMaskData, this.MaskID, this.TabID, this.dynamicMaskData.ParentID, 0, false);
00605 
00606                                                         this.Response.Redirect(reference);
00607                                                 }
00608                                         }
00609                                         else
00610                                         {
00611                                                 Page.SetFocus(this.TBLfieldsValues);
00612                                         }
00613                                 }
00614                         }
00615             UI.Common.Localisation.TranslatePage(this);
00616                 }
00623                 protected void BTNviewLog_Click(object sender, EventArgs e)
00624                 {
00625                         Log_file logFile = new Log_file();
00626             logFile.ShowHistory(this.dynamicMaskData, this);
00627                 }
00634         protected void LBTNlogout_Click(object sender, EventArgs e)
00635         {
00636             UI.Common.AccessManagement.SignOut(this);
00637                 }
00644                 protected void DDLWithChild_OnSelectedIndexChanged(object sender, EventArgs e)
00645                 {
00646                         foreach (FieldData fieldData in this.dynamicMaskData.CurrentRowValues)
00647                         {
00648                                 if (fieldData.ControlName == ((DropDownList)sender).ID)
00649                                 {
00650                                         fieldData.RaisedPostback = true;
00651                                         break;
00652                                 }
00653                         }
00654             string returnMessage = "";
00655                         DynamicMaskControlsManagement.InitializeObjectFromControlsValues(this.TBLfieldsValues, this.dynamicMaskData);
00656             UI.Common.DynamicMaskManagement.GetLookupValues(this.dynamicMaskData, ref returnMessage);
00657                         DynamicMaskControlsManagement.InitializeFieldControls(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues);
00658             UI.Common.Localisation.TranslatePage(this);
00659                 }
00666                 protected void Anchor_OnClick(object sender, EventArgs e)
00667                 {
00668                         Response.Redirect(
00669                                 UI.Common.DynamicMaskManagement.GetDynamicMaskReference(
00670                                           this.dynamicMaskData
00671                                         , sender
00672                                         , this.MaskID
00673                                         , this.ParentID
00674                     , 0
00675                                         , this.IsAddRow));
00676                 }
00677 
00678                 protected void LBclearfacility_Click(object sender, EventArgs e)
00679                 {
00680                         this.SelectedFacility = null;
00681                         this.SelectedDepartment = null;
00682                         UI.Common.DynamicMaskManagement.SetPreselectedFilter(this.dynamicMaskData, this.SelectedFacility, this.SelectedDepartment);
00683                         UI.Common.DynamicMaskManagement.SetPreselectedFilterText(this.dynamicMaskData, this.LBLselectedFacilityNameNoTranslation, this.LBLselectedDepartmentNameNoTranslation);
00684                         this.SetControlsProperties();
00685                 }
00686 
00687                 protected void LBcleardepartment_Click(object sender, EventArgs e)
00688                 {
00689                         this.SelectedDepartment = null;
00690                         UI.Common.DynamicMaskManagement.SetPreselectedFilter(this.dynamicMaskData, this.SelectedFacility, this.SelectedDepartment);
00691                         UI.Common.DynamicMaskManagement.SetPreselectedFilterText(this.dynamicMaskData, this.LBLselectedFacilityNameNoTranslation, this.LBLselectedDepartmentNameNoTranslation);
00692                         this.SetControlsProperties();
00693                 }
00694                 #endregion
00695                 //*********************************************************************
00696                 #region Private methods
00697 
00700         void SetViewFormMode()
00701                 {
00702                         this.CurrentFormMode = DynamicMaskManagement.FormMode.View;
00703 
00704                         this.SetControlsProperties();
00705                 }
00709         void SetEditFormMode()
00710         {
00711             this.CurrentFormMode = DynamicMaskManagement.FormMode.Edit;
00712 
00713                         this.SetControlsProperties();
00714         }
00718         void SetAddFormMode()
00719         {
00720             this.CurrentFormMode = DynamicMaskManagement.FormMode.Add;
00721 
00722                         this.SetControlsProperties();
00723         }
00727         void SetControlsProperties()
00728         {
00729                         UserManagement.AccessRight accessRight =
00730                                 UI.Common.DynamicMaskManagement.GetPageAccessRights(this, this.dynamicMaskData, this.MaskID);
00731                         if (accessRight != null)
00732                         {
00733                                 BTNadd.Visible = accessRight.Add;
00734                                 BTNedit.Visible = accessRight.Edit;
00735                                 BTNdelete.Visible = accessRight.Delete;
00736                                 BTNviewLog.Visible = accessRight.Add || accessRight.Edit || accessRight.Delete;
00737                         }
00738 
00739             LBLselectedFacility.Visible = this.dynamicMaskData.IsMultipaged || 
00740                 ((string)this.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG] == RAIS.Common.Constants.CATEGORY_NAME_INPUT);
00741             LBLselectedFacilityNameNoTranslation.Visible = this.dynamicMaskData.IsMultipaged ||
00742                 ((string)this.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG] == RAIS.Common.Constants.CATEGORY_NAME_INPUT);
00743             LBclearfacility.Visible = (this.dynamicMaskData.IsMultipaged ||
00744                 ((string)this.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG] == RAIS.Common.Constants.CATEGORY_NAME_INPUT))
00745                 && this.SelectedFacility != null;
00746             LBLselectedDepartment.Visible = this.dynamicMaskData.IsMultipaged ||
00747                 ((string)this.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG] == RAIS.Common.Constants.CATEGORY_NAME_INPUT);
00748             LBLselectedDepartmentNameNoTranslation.Visible = this.dynamicMaskData.IsMultipaged ||
00749                 ((string)this.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG] == RAIS.Common.Constants.CATEGORY_NAME_INPUT);
00750             LBcleardepartment.Visible = (this.dynamicMaskData.IsMultipaged ||
00751                 ((string)this.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG] == RAIS.Common.Constants.CATEGORY_NAME_INPUT))
00752                 && this.SelectedDepartment != null;
00753 
00754                         BTNbacktolist.Visible = this.dynamicMaskData.IsMultipaged;
00755 
00756                         bool controlsEnabled = false;
00757 
00758                         switch (this.CurrentFormMode)
00759                         {
00760                                 case DynamicMaskManagement.FormMode.View:
00761                                         this.BTNbacktolist.Enabled = true;
00762 
00763                     if (!this.HasVisibleControlsOnForm)  // 15.08.2011  No visible control on the form / no visible field in the table 
00764                         this.BTNadd.Enabled = false;
00765                     else
00766                         this.BTNadd.Enabled =
00767                             !(
00768                               this.dynamicMaskData.DynamicMask.Table.Name == RAIS.Common.Constants.FACILITY_HISTORY_TABLE_NAME
00769                             || this.dynamicMaskData.DynamicMask.Table.Name == RAIS.Common.Constants.DEPARTMENT_HISTORY_TABLE_NAME
00770                             );
00771 
00772                                         this.BTNedit.Enabled = (LBLlist.SelectedIndex != -1);
00773                                         this.BTNdelete.Enabled = (LBLlist.SelectedIndex != -1
00774                                                 && !(dynamicMaskData.DynamicMask.Table.HistoryTable && LBLlist.Items.Count < 2));
00775                                         this.BTNviewLog.Enabled = (LBLlist.SelectedIndex != -1)
00776                                                 && !(
00777                                                         this.dynamicMaskData.DynamicMask.Table.Name == RAIS.Common.Constants.FACILITY_HISTORY_TABLE_NAME
00778                                                         || this.dynamicMaskData.DynamicMask.Table.Name == RAIS.Common.Constants.DEPARTMENT_HISTORY_TABLE_NAME
00779                                                 );
00780                                         this.LBLlist.Enabled = true;
00781 
00782                                         this.BTNundo.Enabled = false;
00783                                         this.BTNapply.Enabled = false;
00784 
00785                                         this.TreeView1.Enabled = true;
00786                     this.LBTNadmin.Disabled         = !UI.Common.UserManagement.AccessToCategoryAllowed(RAIS.Common.Constants.CATEGORY_NAME_ADMINISTRATION, this);
00787                     this.LBTNregsys.Disabled        = !UI.Common.UserManagement.AccessToCategoryAllowed(RAIS.Common.Constants.CATEGORY_NAME_REGULATORY_SYSTEM, this);
00788                     this.LBTNinput.Disabled         = !UI.Common.UserManagement.AccessToCategoryAllowed(RAIS.Common.Constants.CATEGORY_NAME_INPUT, this);
00789                     this.LBTNquery.Disabled         = !UI.Common.UserManagement.AccessToCategoryAllowed(RAIS.Common.Constants.CATEGORY_NAME_QUERY, this);
00790                     this.LBTNstatistics.Disabled    = !UI.Common.UserManagement.AccessToCategoryAllowed(RAIS.Common.Constants.CATEGORY_NAME_STATISTICS, this);
00791                     this.LBTNtools.Disabled         = !UI.Common.UserManagement.AccessToCategoryAllowed(RAIS.Common.Constants.CATEGORY_NAME_TOOLS, this);
00792                     this.LBTNmessagebox.Disabled    = false;
00793                     this.LBTNdefault.Disabled       = false;
00794                     this.LBTNlogout.Disabled        = false;
00795 
00796                                         Page.SetFocus(this.LBLlist);
00797 
00798                                         break;
00799                                 case DynamicMaskManagement.FormMode.Edit:
00800                 case DynamicMaskManagement.FormMode.Add:
00801                                         this.BTNbacktolist.Enabled = false;
00802                                         this.BTNadd.Enabled = false;
00803                                         this.BTNedit.Enabled = false;
00804                                         this.BTNdelete.Enabled = false;
00805                                         this.BTNviewLog.Enabled = false;
00806                                         this.LBLlist.Enabled = false;
00807 
00808                                         this.TreeView1.Enabled = false;
00809                                         this.LBTNadmin.Disabled = true;
00810                                         this.LBTNregsys.Disabled = true;
00811                                         this.LBTNinput.Disabled = true;
00812                                         this.LBTNquery.Disabled = true;
00813                                         this.LBTNstatistics.Disabled = true;
00814                                         this.LBTNtools.Disabled = true;
00815                                         this.LBTNmessagebox.Disabled = true;
00816                                         this.LBTNdefault.Disabled = false;
00817                                         this.LBTNlogout.Disabled = true;
00818 
00819                                         this.BTNundo.Enabled = true;
00820                     this.BTNapply.Enabled = true;
00821 
00822                         controlsEnabled = true;
00823 
00824                                         Page.SetFocus(this.TBLfieldsValues);
00825 
00826                                         break;
00827                         }
00828 
00829                         DynamicMaskControlsManagement.SetFieldControlsEnabled(this.TBLfieldsValues, this.dynamicMaskData.CurrentRowValues, controlsEnabled);
00830 
00831             switch ((string)this.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG])
00832             {
00833                 case RAIS.Common.Constants.CATEGORY_NAME_REGULATORY_SYSTEM:
00834                     this.LBLregsys.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT;
00835                     break;
00836                 case RAIS.Common.Constants.CATEGORY_NAME_INPUT:
00837                     this.LBLinput.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT;
00838                     break;
00839             }
00840         }
00841 
00842         protected bool HasVisibleControlsOnForm
00843         {
00844             get
00845             {
00846                 bool result = false;
00847                 foreach (FieldData fieldData in this.dynamicMaskData.CurrentRowValues)
00848                 {
00849                     if (fieldData.Field.VisibleOnForms)
00850                         result = true;
00851                 }
00852                 return result;
00853             }
00854         }
00855 
00856                 #endregion
00857         }
00858 }